package com.cs.framework.core.context;

import java.util.Map;

/**
 * 上下文接口
 * 
 * @author hedongzhou
 * 
 */
public interface Context {

	/**
	 * 初始化
	 */
	public void init();

	/**
	 * 获取bean
	 * 
	 * @param name
	 *            bean名称
	 * @return
	 */
	public Object getBean(String name);

	/**
	 * 获取bean
	 * 
	 * @param <T>
	 * @param name
	 *            bean名称
	 * @param requiredType
	 *            bean类型
	 * @return
	 */
	public <T> T getBean(String name, Class<T> requiredType);

	/**
	 * 获取bean
	 * 
	 * @param <T>
	 * @param requiredType
	 *            bean类型
	 * @return
	 */
	public <T> T getBean(Class<T> requiredType);

	/**
	 * 获取属性配置信息
	 */
	public Map<String, Object> getPropertyMap();

	/**
	 * 获取属性配置信息
	 * 
	 * @param key
	 *            键值
	 * @return
	 */
	public Object getProperty(String key);

}
